Interrupts কী এবং এর প্রয়োজনীয়তা

Computer Programming - আরডুইনো (Arduino) Interrupts এবং Timer Functions (Interrupts and Timer Functions in Arduino) |
192
192

Interrupts হলো একটি শক্তিশালী ফিচার যা মাইক্রোকন্ট্রোলারকে কোনো বিশেষ ঘটনার জন্য অবিলম্বে প্রতিক্রিয়া জানাতে সক্ষম করে। এটি সাধারণত প্রধান কোডের কার্যক্রম চলাকালীন ঘটে এবং কোনো গুরুত্বপূর্ণ ইভেন্ট ঘটলে মাইক্রোকন্ট্রোলারকে তাৎক্ষণিকভাবে সেই ইভেন্টের সাথে সাড়া দিতে দেয়।

Interrupts এর প্রকারভেদ

Interrupts প্রধানত দুই ধরনের হয়:

  1. External Interrupts: বাইরের ইভেন্ট যেমন বাটন প্রেস, সেন্সর সিগন্যাল ইত্যাদি দ্বারা তৈরি হয়। Arduino বোর্ডে একাধিক বাহ্যিক ইন্টারাপ্ট পিন থাকে (যেমন, 2 ও 3 পিন)।
  2. Timer Interrupts: সময় ভিত্তিক ইভেন্ট, যা টিমার ফাংশনালিটি ব্যবহার করে তৈরি হয়। এটি নির্দিষ্ট সময় অন্তর কোডের অংশ চালাতে সহায়তা করে।

Interrupts এর প্রয়োজনীয়তা

  • তাত্ক্ষণিক প্রতিক্রিয়া: Interrupts ব্যবহার করে বোর্ডকে প্রয়োজনীয় কাজগুলি তাত্ক্ষণিকভাবে সম্পন্ন করতে দেয়, যা প্রধান কোডের কার্যক্রমের সাথে মিলে না। উদাহরণস্বরূপ, একটি বাটন প্রেসের প্রতিক্রিয়া দ্রুতভাবে গৃহীত হতে পারে।
  • প্রক্রিয়াকরণ কার্যকারিতা: Interrupts প্রধান কার্যক্রম চলাকালীন নতুন ইনপুট বা তথ্য গ্রহণের সময় কার্যকরভাবে ব্যবহৃত হয়, যা প্রোগ্রামের কার্যকারিতা বৃদ্ধি করে।
  • পাওয়ার সাশ্রয়: Arduino একটি নির্দিষ্ট সময়ে Idle অবস্থায় থাকতে পারে এবং যখন ইন্টারাপ্ট ঘটে, তখন তাত্ক্ষণিকভাবে কার্যক্রম চালানো শুরু করতে পারে। এটি পাওয়ার সাশ্রয়ের জন্য উপকারী।
  • ডেটা গ্রহণ: সেন্সর থেকে ডেটা গ্রহণের সময়, যখন তথ্য আসবে তখন একটি ইন্টারাপ্ট ব্যবহার করে তা দ্রুত প্রক্রিয়া করা যায়। উদাহরণস্বরূপ, একটি সেন্সর থেকে ডেটা আসলে প্রোগ্রামটি তাৎক্ষণিকভাবে তথ্য গ্রহণ করতে পারে।

Interrupts ব্যবহারের উদাহরণ

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি বাটনের প্রেসের জন্য ইন্টারাপ্ট ব্যবহৃত হচ্ছে:

const int buttonPin = 2; // বাটনের পিন
volatile int buttonState = 0; // ইন্টারাপ্টের মাধ্যমে পরিবর্তনশীল মান

void setup() {
  pinMode(buttonPin, INPUT); // বাটন পিনকে ইনপুট হিসেবে কনফিগার করা
  attachInterrupt(digitalPinToInterrupt(buttonPin), buttonISR, RISING); // ইন্টারাপ্ট সেট করা
  Serial.begin(9600); // সিরিয়াল মনিটর শুরু
}

void loop() {
  Serial.println(buttonState); // বাটনের অবস্থা প্রিন্ট করা
  delay(500); // ০.৫ সেকেন্ড অপেক্ষা
}

void buttonISR() { // ইন্টারাপ্ট রুটিন
  buttonState = 1; // বাটন প্রেস হলে মান পরিবর্তন
}

কোডের বিশ্লেষণ

  • attachInterrupt(): এই ফাংশনটি নির্দিষ্ট পিনের জন্য ইন্টারাপ্ট সেট করে এবং একটি ইন্টারাপ্ট সার্ভিস রুটিন (ISR) সংযুক্ত করে।
  • buttonISR(): এটি ইন্টারাপ্ট ঘটলে চলবে এবং এখানে বাটনের অবস্থা পরিবর্তন করা হয়।

উপসংহার

Interrupts ব্যবহার করে Arduino প্রোজেক্টে দ্রুত এবং কার্যকরী প্রতিক্রিয়া নিশ্চিত করা যায়। এটি সেন্সর ডেটা, ব্যবহারকারীর ইনপুট এবং অন্যান্য গুরুত্বপূর্ণ ইভেন্টের জন্য খুবই কার্যকর। Interrupts প্রোগ্রামের কার্যকারিতা এবং কার্যক্ষমতা বাড়ায়, যা বিশেষ করে রিয়েল-টাইম অ্যাপ্লিকেশনগুলোর জন্য অত্যন্ত গুরুত্বপূর্ণ।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion